Computer systems can operate in a distributed fashion, with requests for work being distributed to multiple workers, which perform the work and output results. A worker may be a processor core, a processor or a computer system, each distinct from the other workers. The results may be returned to the requestor or may be sent to another worker to perform additional work. Conventional methods of assigning work to workers is suboptimal. What is needed is a system and method for assigning work to workers.